﻿Imports System.Data
Imports System.Data.SqlClient
Partial Class Sistema_PersonasConsulta
    Inherits System.Web.UI.Page
    Dim editar As Boolean
    Dim Edad As Integer
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load



        If String.IsNullOrEmpty(Request.QueryString.Item("Psicosocial")) = False Then
            PnlModuloPsicosocial.visible = True
            PnlModulos.visible = False
        End If

        hdIdHogar.Value = Request.QueryString.Item("idHogar")
        If Page.IsPostBack = False Then
            If String.IsNullOrEmpty(Request.QueryString.Item("idPersona")) = False Then
                hdIdPersona.Value = Request.QueryString.Item("idPersona")

                If hdIdPersona.Value <> 0 Then
                    editar = True
                    traerPersona()

                End If
            End If
            'vllenarCombos()
            traervisitaspersona()
            cargarEstado()

        End If

        listas()


    End Sub
    Sub cargarEstado()
        Using bd As New BdHogaresDataContext
            Dim a = bd.usp_GetEstadoDiligenciamiento(hdIdPersona.Value, ddvisita.SelectedValue)
            Dim dato = a(0)
            lblEducacion.Text = dato.Educación
            lblSexualReproductiva.Text = dato.Salud_Sexual_y_repoductiva
            lblCrecimientodesarrollo.Text = dato.Crecimiento_y_desarrollo
            lblComplementario.text = dato.Complementario
        End Using

        'Psicosocial
        Try
            Using bd As New BdHogaresDataContext

                Dim a = From i In bd.Web_ModuloPsicosocialIndividuals
                              Where i.idPersona = hdIdPersona.Value And i.idvisita = ddvisita.SelectedValue
                              Select i.rbbienestarPsicologico

                Dim dato = a.First
                If dato > 0 Then
                    lblindividual.Text = "OK"
                End If
            End Using
        Catch ex As Exception
            lblindividual.Text = "No diligenciado"
        End Try

   

        Using bd As New BdHogaresDataContext
            Dim a = From i In bd.Web_Caracterizacionpersonas
                      Where i.idPersona = hdIdPersona.Value
                      Select i.edadañoscumplidos
            Edad = a.First()
            'If Edad > 10 Then SAMUEL -- CAMBIO DE EDAD MODULO COMPLEMENTARIO NIÑOS Y NIÑAS
            If Edad > 5 Then
                lblComplementario.Text = "NO APLICA"
            End If

            If Not Edad <= 10 Then
                lblCrecimientodesarrollo.Text = "NO APLICA"
            End If

            If Edad < 10 Then
                lblSexualReproductiva.Text = "NO APLICA"
            End If
        End Using


    End Sub
    Sub traervisitaspersona()
        Using bd As New BdHogaresDataContext

            Dim a = From i In bd.Web_Visitas
                    Where (i.idHogar = hdIdHogar.Value)
                    Select i.idvisita, i.Visita

            ddvisita.DataSource = a
            ddvisita.DataValueField = "idvisita"
            ddvisita.DataTextField = "Visita"
            ddvisita.DataBind()
            ddvisita.SelectedIndex = ddvisita.Items.Count - 1
            ddvisita.Enabled = True

        End Using
    End Sub

    Sub llenarCombos()
        Using cnn As New SqlConnection(ConfigurationManager.ConnectionStrings("CNNdb").ConnectionString)
            cnn.Open()
            'LlenarItems(rbsexo, "Sexo", cnn)
            'LlenarItems(rbParentescojefehogar, "ParentescoJefeHogar", cnn)
            'LlenarItems(rbculturapuebloorigen, "CulturaLenguaPueblo", cnn)
            'LlenarItems(rbidioma, "IdiomaHabla", cnn)
            'LlenarItems(rbtipoafiliacion, "TipoAfiliacion", cnn)
            'LlenarItems(rblimitacion, "Limitacion", cnn)
            cnn.Close()
        End Using
    End Sub

    Sub LlenarItems(ByVal objeto As Object, ByVal pregunta As String, ByRef cnn As SqlConnection)
        If pregunta = "sino" Then : objeto.Items.Add(New ListItem("Sí", 1)) : objeto.Items.Add(New ListItem("No", 2)) : Exit Sub : End If
        Using drDatos As SqlDataReader = Funciones.TraerListas(pregunta, cnn)
            With objeto
                .DataSource = drDatos
                .DataTextField = "nombreopcion"
                .DataValueField = "valoropcion"
                .DataBind()
            End With
        End Using
    End Sub

    'Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate

    '    'Dim mensaje As New StringBuilder

    '    'If rbculturapuebloorigen.SelectedValue = 10 Then
    '    '    mensaje.AppendLine("</br>Debe responder grupo indigena al que corresponde")
    '    'End If

    '    'If rbidioma.SelectedValue = 3 Then
    '    '    mensaje.AppendLine("</br>Debe responder que otro idioma habla")
    '    'End If

    '    'If rblimitacion.SelectedValue = 16 Then
    '    '    mensaje.AppendLine("</br>Debe responder que otra limitacion tiene")
    '    'End If

    '    'If Not IsNumeric(txtNumerodedocumento.Text) Then
    '    '    mensaje.AppendLine("</br>Debe ingresar un numero de documento")
    '    'End If


    '    'If rblimitacion.SelectedValue = 16 Then
    '    '    mensaje.AppendLine("</br>Debe responder que otra limitacion tiene")
    '    'End If


    '    'If mensaje.Length > 0 Then
    '    '    args.IsValid = False
    '    '    Me.CustomValidator1.ErrorMessage = mensaje.ToString()
    '    '    Me.CustomValidator1.Enabled = True
    '    'End If

    '    'mensaje = Nothing
    'End Sub

    Sub listas()
        Dim rbl As RadioButtonList
        'CType(ddvisita, DropDownList).Attributes.Add("onchange", "fddvisita()")
        'rbl = CType(rbidioma, RadioButtonList) : For Each li As ListItem In rbl.Items : li.Attributes.Add("onclick", "frbidioma()") : Next
        'rbl = CType(rblimitacion, RadioButtonList) : For Each li As ListItem In rbl.Items : li.Attributes.Add("onclick", "frblimitacion()") : Next
        'rbl.Dispose()
        rbl = Nothing

    End Sub

#Region "cargar Datos"

    Sub traerPersona() 'carga los controles con los datos de la bd
        Using bd As New BdHogaresDataContext
            Dim a = From i In bd.Web_Caracterizacionpersonas
                      Where i.idPersona = hdIdPersona.Value
                      Select i
            Dim Persona As New Web_Caracterizacionpersona
            Persona = a.FirstOrDefault()

            TxtConsecutivo.Text = Persona.consecutivopersona
            txtNombres.Text = Persona.Nombres
            txtapellidos.Text = Persona.Apellidos
            txtTipodedocumento.Text = Persona.tipodocumento
            Select Case txtTipodedocumento.Text
                Case 1
                    txtTipodedocumento.Text = "Contraseña"
                Case 2
                    txtTipodedocumento.Text = "Registro civil"
                Case 3
                    txtTipodedocumento.Text = "Tarjeta de identidad"
                Case 4
                    txtTipodedocumento.Text = "Cédula de ciudadania"
                Case 5
                    txtTipodedocumento.Text = "NUIP"
                Case 6
                    txtTipodedocumento.Text = "Cédula de extranjeria"
                Case 7
                    txtTipodedocumento.Text = "Registro de nacido vivo"
                Case 8
                    txtTipodedocumento.Text = "Sin documento de identificación"
            End Select

            txtNumerodedocumento.Text = Persona.Documento
            'rbsexo.SelectedValue = Persona.sexo
            'txtfechadenacimiento.Text = Persona.fechadenacimiento
            'txtañoscumplidos.Text = Persona.edadañoscumplidos
            'rbParentescojefehogar.SelectedValue = Persona.parentescojefehogar
            'rbculturapuebloorigen.SelectedValue = Persona.culturalenguapuebloorigen
            'txtgrupoindigena.Text = Persona.culturalenguapuebloorigenCual
            'rbidioma.SelectedValue = Persona.idioma
            'txtidiomacual.Text = Persona.idiomaCual
            'rbtipoafiliacion.SelectedValue = Persona.tipoafiliacionsalud
            'txtnombreeps.Text = Persona.nombreeps
            'txtnombreips.Text = Persona.nombreips
            'rblimitacion.SelectedValue = Persona.tienelimitacion
            'txtlimitacioncual.Text = Persona.tienelimitacionCual
            'txtObservaciones.Text = Persona.observaciones
        End Using

    End Sub
#End Region
#Region "Metodos"
    Sub guardar() 'Guarda los datos en la bd
        Dim Persona As New Web_Caracterizacionpersona

        Persona.consecutivopersona = TxtConsecutivo.Text
        Persona.Nombres = txtNombres.Text
        Persona.Apellidos = txtapellidos.Text
        Persona.tipodocumento = txtTipodedocumento.Text
        Persona.Documento = txtNumerodedocumento.Text
        'Persona.sexo = rbsexo.SelectedValue
        'Persona.fechadenacimiento = txtfechadenacimiento.Text
        'Persona.edadañoscumplidos = txtañoscumplidos.Text
        'Persona.parentescojefehogar = rbParentescojefehogar.SelectedValue
        'Persona.culturalenguapuebloorigen = rbculturapuebloorigen.SelectedValue
        'Persona.culturalenguapuebloorigenCual = txtgrupoindigena.Text
        'Persona.idioma = rbidioma.SelectedValue
        'Persona.idiomaCual = txtidiomacual.Text
        'Persona.tipoafiliacionsalud = rbtipoafiliacion.SelectedValue
        'Persona.nombreeps = txtnombreeps.Text
        'Persona.nombreips = txtnombreips.Text
        'Persona.tienelimitacion = rblimitacion.SelectedValue
        'Persona.tienelimitacionCual = txtlimitacioncual.Text
        'Persona.observaciones = txtObservaciones.Text
        Persona.idHogar = hdIdHogar.Value
        Using bd As New BdHogaresDataContext
            bd.Web_Caracterizacionpersonas.InsertOnSubmit(Persona)
            bd.SubmitChanges()
            bd.registrarLog(Context.User.Identity.Name, 5, Request.CurrentExecutionFilePath)
        End Using

    End Sub

    Sub actualizar() ' Actualiza la informacion cuando ya existe el registro
        Using bd As New BdHogaresDataContext
            Dim a = From i In bd.Web_Caracterizacionpersonas
                      Where i.idPersona = hdIdPersona.Value
                      Select i

            Dim Persona As New Web_Caracterizacionpersona
            Persona = a.FirstOrDefault()
            Persona.consecutivopersona = TxtConsecutivo.Text
            Persona.Nombres = txtNombres.Text
            Persona.Apellidos = txtapellidos.Text
            Persona.tipodocumento = txtTipodedocumento.Text
            Persona.Documento = txtNumerodedocumento.Text
            'Persona.sexo = rbsexo.SelectedValue
            'Persona.fechadenacimiento = txtfechadenacimiento.Text
            'Persona.edadañoscumplidos = txtañoscumplidos.Text
            'Persona.parentescojefehogar = rbParentescojefehogar.SelectedValue
            'Persona.culturalenguapuebloorigen = rbculturapuebloorigen.SelectedValue
            'Persona.culturalenguapuebloorigenCual = txtgrupoindigena.Text
            'Persona.idioma = rbidioma.SelectedValue
            'Persona.idiomaCual = txtidiomacual.Text
            'Persona.tipoafiliacionsalud = rbtipoafiliacion.SelectedValue
            'Persona.nombreeps = txtnombreeps.Text
            'Persona.nombreips = txtnombreips.Text
            'Persona.tienelimitacion = rblimitacion.SelectedValue
            'Persona.tienelimitacionCual = txtlimitacioncual.Text
            'Persona.observaciones = txtObservaciones.Text
            bd.SubmitChanges()
            bd.registrarLog(Context.User.Identity.Name, 5, Request.CurrentExecutionFilePath)
        End Using

    End Sub
#End Region
#Region "Enventos controles"


    Protected Sub btnGuardar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGuardar.Click
        Try
            If editar = True Then
                actualizar()
            Else
                guardar()
            End If
            Response.Redirect("HogaresConsulta.aspx?idHogar=" & hdIdHogar.Value)

        Catch ex As Exception
            Throw ex
        End Try
    End Sub

    Protected Sub btnCancelar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
        Response.Redirect("HogaresConsulta.aspx?idHogar=" & hdIdHogar.Value)
    End Sub
#End Region

    Protected Sub btnIngresar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnIngresar.Click

        Select Case rbmodulo.SelectedValue
            Case 1
                Response.Redirect("ModuloEducacion.aspx?idvisita=" & ddvisita.SelectedValue & "&idpersona=" & hdIdPersona.Value & "&idhogar=" & hdIdHogar.Value)
            Case 2
                Response.Redirect("ModuloSalud.aspx?idvisita=" & ddvisita.SelectedValue & "&idpersona=" & hdIdPersona.Value & "&idhogar=" & hdIdHogar.Value)
            Case 3
                Response.Redirect("ModuloCrecimientoDesarrollo.aspx?idvisita=" & ddvisita.SelectedValue & "&idpersona=" & hdIdPersona.Value & "&idhogar=" & hdIdHogar.Value)
            Case 4
                Response.Redirect("ModuloComplementario.aspx?idvisita=" & ddvisita.SelectedValue & "&idpersona=" & hdIdPersona.Value & "&idhogar=" & hdIdHogar.Value)
        End Select

    End Sub

    Protected Sub btnIngresarPsicosocial_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnIngresarPsicosocial.Click


        Select Case rbmodulopsicosocial.SelectedValue
            Case 1
                'Solo se puede diligenciar a partir de la visita 1
                If (ddvisita.SelectedItem.Text = "Levantamiento de información") Then
                    CustomValidator1.ErrorMessage = "Solo se puede diligenciar a partir de la visita 1"
                    CustomValidator1.IsValid = False
                    CustomValidator1.Enabled = True
                    btnIngresarPsicosocial.Focus()
                    Exit Sub
                End If

                'verificar que ya se haya diligenciado la información de los demás módulos
                Using bd As New BdHogaresDataContext

                    Dim a = bd.RPTRevision04InstrumentosIncompletosXhogar(ddvisita.SelectedItem.Text, hdIdHogar.Value, 0)
                    If User.Identity.Name <> "aarias" Then

                        If CInt(a.Single.Personas_con_módulos_no_diligenciados) > 0 Then
                            CustomValidator1.ErrorMessage = "La información de algunos de los módulos de este hogar no están diligenciados. Diligencie toda la información de la visita antes de continuar"
                            CustomValidator1.IsValid = False
                            CustomValidator1.Enabled = True
                            btnIngresarPsicosocial.Focus()
                            Exit Sub
                        End If
                    End If

                End Using


                Response.Redirect("ModuloPsicosocialIndividual.aspx?idvisita=" & ddvisita.SelectedValue & "&idpersona=" & hdIdPersona.Value & "&idhogar=" & hdIdHogar.Value)
        End Select

    End Sub

    Protected Sub btnVerDiligenciamiento_Click(sender As Object, e As System.EventArgs) Handles btnVerDiligenciamiento.Click
        cargarEstado()
    End Sub
End Class



















































